#include<REGX52.H>
#include "intrins.h"

/**
  * @brief  定时器1初始化
  * @param  无
  * @retval 无
  */
 //定时个2ms
void Timer1_Init(){
	// TMOD设置 配置定时器0的工作模式，同时保留定时器1的配置
	TMOD &= 0x0F; // 保留高位值，定时器0的配置
	TMOD |= 0x10;  // 保留定时器0配置的同时，设置设置定时器1的工作模式为1
	// 设置计数器寄存器初始值 1ms一周期 63536；65535-2000。
	TL1 = 0x30;		//设置定时初值
	TH1 = 0xF8;		//设置定时初值
	// TCON设置
	TF1 = 0; // 溢出标记初始值，当计数器溢出时，会自动置1
	TR1 = 1; // 打开定时器1
	// 中断设置
	ET1 = 1; // 打开定时器1的中断允许
	EA = 1; // 打开中断总开关
}

void main(){
	Timer1_Init(); // 定时器配置初始化	
	while(1){	
	}
}

// 定义定时器1的中断处理函数
void Timer1_Handle() interrupt 3
{
	static int i=0; // 静态局部函数，计数	
	i++; // cpu运行了1ms
	// 重新为定时器1的计数赋初值
	TL1 = 0x30;	 // 高8位设置
	TH1 = 0xF8;	 // 低8位设置
	// 执行了2秒后，可以点灯了
	if(i>=1000){
		i=0;// 重新计时
		P2_0 = ~P2_0; // 电平取反
	}	
}
